﻿#ifndef _FINDDIALOG_H
#define _FINDDIALOG_H

#include<QDialog>
#include<QComboBox>
#include<QLineEdit>
#include<QHBoxLayout>
#include<QRadioButton> // 单选按钮
#include<QCheckBox>// 多选按钮
#include<QGroupBox> // 将单选按钮加进一个组件中
#include<QLabel> // label 标签
#include<QPushButton>
#include<QGridLayout>
#include<QWidget>
#include<QEvent>
#include"StringEvent.h"
#include<QPlainTextEdit>
#include<memory>

class FindDialog : public QDialog
{
    Q_OBJECT
public:
    FindDialog(QWidget * parent=nullptr,QPlainTextEdit * mpalin=nullptr);

protected:

    std::shared_ptr<QPlainTextEdit>m_plainText;
    QGridLayout m_layout; // 二维布局
    QHBoxLayout m_hbLayout; // 水平布局

    QGroupBox m_groutBox; // 按钮组
    QLabel m_findlabel; // 查找标签

    QLineEdit m_findEdit; // 查找文本的输入框
    QPushButton m_findBtn; // 查找按钮
    QPushButton m_closeBtn; // 关闭按钮

    QCheckBox m_matchBox; // 关于匹配模式 checkBox

    QRadioButton m_frowardBtn; // 向前查找
    QRadioButton m_backBtn; // 向后查找

    bool event(QEvent *event);


    QString getData();           // 返回m_edit 中的内容

private:
    void setConnect();     //链接操函数

private slots:
    void  done();
    void onSearch();
    void onClose();


protected:
    bool eventFilter(QObject *, QEvent *);
    bool closeEvent();


};

#endif // FINDDIALOG_H
